{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 用帕累托图进行数据分析"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 1. 初始设置\n",
    "\n",
    "首先，导入所需的库，并设置中文字体等。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 导入所需的库\n",
    "import numpy as np\n",
    "import pandas as pd\n",
    "import matplotlib as mpl\n",
    "import matplotlib.pyplot as plt\n",
    "import matplotlib.image as image\n",
    "\n",
    "# 正常显示中文标签\n",
    "mpl.rcParams['font.sans-serif'] = ['SimHei']\n",
    "\n",
    "# 自动适应布局\n",
    "mpl.rcParams.update({'figure.autolayout': True})\n",
    "\n",
    "# 正常显示负号\n",
    "mpl.rcParams['axes.unicode_minus'] = False\n",
    "\n",
    "# 禁用科学计数法\n",
    "pd.set_option('display.float_format', lambda x: '%.2f' % x) \n",
    "\n",
    "# 定义颜色，主色：蓝色，辅助色：灰色，互补色：橙色\n",
    "c = {'蓝色':'#00589F', '深蓝色':'#003867', '浅蓝色':'#5D9BCF',\n",
    "     '灰色':'#999999', '深灰色':'#666666', '浅灰色':'#CCCCCC',\n",
    "     '橙色':'#F68F00', '深橙色':'#A05D00', '浅橙色':'#FBC171'}"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 2. 定义数据"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 数据源路径\n",
    "filepath='./data/帕累托图数据源.xlsx'\n",
    "\n",
    "# 读取 Excel文件\n",
    "df = pd.read_excel(filepath)\n",
    "\n",
    "# 定义画图所需的数据\n",
    "x = df['原因']\n",
    "y = df['频次']\n",
    "\n",
    "# 让折线图从坐标原点开始\n",
    "x2 = np.arange(len(x)+1) - 0.5\n",
    "# 计算累计频次\n",
    "y_cumsum = [0] + list(y.cumsum())\n",
    "# 计算累计百分比\n",
    "y2 = y.cumsum()/y.sum()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 3. 开始画图\n",
    "\n",
    "用「**面向对象**」的方法画图。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjgAAAGoCAYAAABL+58oAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjAsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8GearUAAAgAElEQVR4nOzdd5xcVf3/8dedtpveewcSQoCQEJAmvYRuARWVjnoAaXaxfAUR/Nm+okg5CIICIgiWLz10qQFWSAiBkJBeSEJI2ZTdaff3x7mzOzs7sztbJzv7fj4e+7g7t57ZveVzT/V830dERESknIRKnQARERGR9qYAR0RERMqOAhwREREpOwpwREREpOwowBEREZGyowBHREREyo4CHBERESk7CnBERESk7CjAERERkbKjAEdERETKjgIcERERKTsKcERERKTsKMARERGRsqMAR0RERMqOAhwREREpOwpwREREpOwowBEREZGyowBHREREyo4CHBERESk7CnBERESk7CjAERERkbKjAEdERETKjgIcERERKTsKcERERKTsKMARERGRsqMAR0RERMqOAhwREREpOwpwREREpOwowBEREZGyowBHREREyo4CHBERESk7kVInoCsyxvwASAHPAG9Ya/0C6x0JvGKtremkdA0GDgOOARZYa39XxDajAK8Nh91krd1axHH6AecD1xf6e0nLGGOuAPoDt1trV5Q6PR1pZ73mco7tATEgZq2t7uzjtxdjTBSoANLW2u1FbjMMuBJYZ629rgPTttOfB7LzUIDTOicCh+AusP3zrRDc7P4R/P4za+1v2nLA4KbTHxgMDAFGAmODn8nAXsCwrE1WGGNus9Zua2bXS4BoG5J2CXBjUysYY8LAi0EafeD6Nhwv3/4HAv/bzGo3AGngamAbkAg+5wrhbu4Ja+2ZTRxzJLCqVQmGG621l7Ry22wX4P6m/wTKOsChg685Y8wzwJHtkVDgPuCMPMe4ADi0nY6x0Fp7bb4FwYtOGogDtdbaRAv3/S3g58B7wB5FblMJXA68A3RYgEMJ7r3SdSnAaZ3hwfSuJtaZhgtIAF5tyc6NMb8DPo/7/0SBnhQXhCSB9cHPBuBTwF+b2SYBbLfW9m9mvdw0/gH4enCcJllrU8aYnwL3A//PGPOEtfbdYD/34W5YNbg3s6Zyd2qt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RDD9b86xLsR1SvcheSq1W2uXAd8wxnwPF5R+EhdkjMbldBUaNTlfcWQmKPm3LdAPTnOM6wdnf9o2FEcpdfQ1NwlX4XQNQcVoa+1Lxpi9c4rTCPbzyeD3FC6nLjdNKdywIYW0pd5MxjJcfbxicyJeA97E5Qp/gAuYn7HWNlXs3FyAczoul6tB7qZ1w0L8xBhzFe5/dxDub7wL9bm9vXHXQCjrx6M+yLknz/E6+jyQMuX5fmf00i2tZYwZiHvbehZXn6jowfOCiuAjrLX5OgLc6QWVU8MF3oaz15to3eCFnZGmTwObcotlO+A4vXEPg602q+mytK+gbsZIa22zAUMQMC4GZgd1tkRkJ6YAR0RERMpOsd35i4iIiHQZCnBERESk7CjAERERkbKjAEdERETKjgIcERERKTsKcERERKTsKMARERGRsqMAR0RERMqOAhwREREpOwpwREREpOwowBEREZGyowBHREREyo4CHBERESk7CnBERESk7CjAERERkbKjAEdERETKjgIcERERKTsKcERERKTsKMARERGRsqMAR0RERMqOAhwREREpOwpwREREpOwowBEREZGyowBHREREyo4CHBERESk7CnBERESk7ESaWe53SipEREREWsfLN1M5OCIiIlJ2FOCIiIhI2VGAIyIiImVHAY6IiIiUHQU4IiIiUnYU4IiIiEjZUYAjIiIiZUcBjoiIiJQdBTgiIiJSdhTgiIiISNlRgCMiIiJlRwGOiIiIlJ3mBtsUERERacT305CKu5+0m/qp2gafvT5j8XoOKUn6FOCIiIjsZPx0ygUJydr64CGYEgQR9Z+Deek4foOAozbnczAve7t0VlDSRKCSbzvSyWa/R/SYPxLZ6yud8BdrrOQBzttvv008Hi91MtpFKBQinU6XOhltVi7fA8rnu+h77HzK5buUy/eAEn0X38fz44SS2wmltxNKZX52EEpty5luz/NTvzwczPPStXh0jf9J2ovih6L4jaYRCFcQq+hfsrS1OMA57rpZfGb/sVx07GRS6TTxZJrKaBjP8+rWSSTTJNNpesSa3308HmfGjBktTcZOqaqqqiy+S7l8Dyif76LvsfMpl+9SLt8DivsufjoJ8a34iWpIbIV4NX5ia/28rCmJrfhxt179MrdN9jL8VAd8Gw/CFRCOuZ9QDK/R55hbJxSrm++FYnm2y5qX+RyK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\n",
      "text/plain": [
       "<Figure size 576x432 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 使用「面向对象」的方法画图\n",
    "fig, ax = plt.subplots(figsize=(8, 6))\n",
    "\n",
    "# 设置标题\n",
    "ax.set_title('\\n%.1f%%' % (y_cumsum[2]/y.sum()*100) + '的质量问题是由20%的原因引起的\\n', \n",
    "             fontsize=26, loc='left', color=c['深灰色'])\n",
    "\n",
    "# 用灰色方框代表总体的大小，体现每个数据的占比关系\n",
    "ax.bar(x, y.sum(), width=1, color='w', edgecolor=c['浅灰色'], zorder=0)\n",
    "\n",
    "# 画柱形图\n",
    "ax.bar(x, y, width=1, color=c['蓝色'], edgecolor=c['浅灰色'], zorder=1)\n",
    "\n",
    "# 画折线图\n",
    "ax.plot(x2, y_cumsum, ls='-', lw=2, color=c['橙色'], label='累计百分比', zorder=2)\n",
    "\n",
    "# 标记体现二八法则的虚线\n",
    "ax.hlines(y_cumsum[2], -0.5, 1.5, color=c['橙色'], ls='--')\n",
    "ax.vlines(1.5, 0, y_cumsum[2], color=c['橙色'], ls='--')\n",
    "\n",
    "# 隐藏边框\n",
    "ax.spines['top'].set_visible(False)\n",
    "ax.spines['right'].set_visible(False)\n",
    "ax.spines['bottom'].set_visible(False)\n",
    "ax.spines['left'].set_visible(False)\n",
    "\n",
    "# 设置图形的位置，减少空白\n",
    "ax.spines['left'].set_position(('data', -0.51))\n",
    "\n",
    "# 隐藏 X 轴的刻度线\n",
    "ax.tick_params(axis='x', which='major', length=0)\n",
    "ax.tick_params(axis='y', which='major', length=0)\n",
    "ax.set_yticklabels([])\n",
    "\n",
    "# 设置坐标标签字体大小和颜色\n",
    "ax.tick_params(labelsize=16, colors=c['深灰色'])\n",
    "\n",
    "# 设置数据标签\n",
    "for a, a2, b, b2, b3 in zip(x, x2[1:], y, y_cumsum[1:], y2):\n",
    "    ax.text(a, b, '%.0f' % b, ha='center', va= 'bottom', fontsize=16, color=c['蓝色'])\n",
    "    \n",
    "\n",
    "# 标记 Y 轴标题\n",
    "ax.text(-1, y.sum(), '频\\n次', fontsize=16, va='top', color=c['蓝色'])\n",
    "\n",
    "# 标记线条含义\n",
    "ax.text(1.5, y_cumsum[2]+10, '累计%.1f%% ' % (y_cumsum[2]/y.sum()*100), fontsize=16, color=c['橙色'], va='bottom', ha='right', zorder=5)\n",
    "\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    " "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    " "
   ]
  }
 ],
 "metadata": {
  "file_extension": ".py",
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.0"
  },
  "mimetype": "text/x-python",
  "name": "python",
  "npconvert_exporter": "python",
  "pygments_lexer": "ipython3",
  "version": 3
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
